package com.vw.obd.dao;

/**
 * 	dao de la tabla CriteriosXPlantilla
 * 
 * 	@author SITI - lLara
 * 	@version 31/1/2014
 *
**/

/* Modificaciones
 * Fecha	Modific�	Descripci�n	
 * 		
 */

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
import java.util.ArrayList;
import com.vw.obd.dto.CriteriosXPlantillaDTO;

public class  CriteriosXPlantillaDAO {

	public ArrayList<CriteriosXPlantillaDTO> leerCriteriosXPlantilla(Connection conexion, String where) throws Exception {
		String query =
				?ConsultaSQL +
				where;

		PreparedStatement prpdStatement = conexion.prepareStatement(query);
		ResultSet rs = prpdStatement.executeQuery();
		ArrayList<CriteriosXPlantillaDTO> lista_dto = new ArrayList<CriteriosXPlantillaDTO>();

		try {
			while (rs.next()) {
				CriteriosXPlantillaDTO dto = new CriteriosXPlantillaDTO();
					 dto.setIdPlantilla(rs.getInt("idPlantilla"));
	 dto.setIdCriterio(rs.getInt("idCriterio"));
	 dto.setCondicion(rs.getString("condicion"));

				lista_dto.add(dto);
			}

			return lista_dto;
		} catch (SQLException sqlEx) {
			throw new Exception(this.getClass().getCanonicalName() + ": Error en la lectura de la tabla. " + sqlEx);
		} finally {
			if (prpdStatement != null) {
				prpdStatement.close();
			}
		}
	}
	
	public int insertarCriteriosXPlantilla(Connection conexion, int pidPlantilla, int pidCriterio, String pcondicion) {
		try {
			String query = "{call obd.insertaCriteriosXPlantilla(?, ?, ?, ?)}";
			
			CallableStatement call = conexion.prepareCall(query);
				 call.setint(1, pidPlantilla);
	 call.setint(2, pidCriterio);
	 call.setString(3, pcondicion);

			call.registerOutParameter(4, Types.INTEGER);
			
			call.execute();
			conexion.commit();
			
			return call.getInt(4);
		}
		catch (Exception e) {
			e.printStackTrace();
			//RegistraLOG.registrarLog(this.getClass().getName(), e);
			return -1;
		}
	}
}
